package org.finesys.common.dataPermission.aop;

import org.finesys.common.dataPermission.annotation.DataPermission;
import org.springframework.aop.Pointcut;
import org.springframework.aop.support.ComposablePointcut;
import org.springframework.aop.support.annotation.AnnotationMatchingPointcut;

public class DataPermissionCustomPointCut {
    /**
     * 自定义切入点 复合切点 为创建多个切点而提供的方便操作类 它所有的方法都返回ComposablePointcut类 这样，我们就可以使用链接表达式对其进行操作
     */
    protected static Pointcut of() {
        Pointcut classPointCut = new AnnotationMatchingPointcut(DataPermission.class, true);
        Pointcut methddPointCut = new AnnotationMatchingPointcut(null, DataPermission.class, true);
        return new ComposablePointcut(classPointCut).union(methddPointCut);
    }
}
